package com.solarStruggle.domain.stats

import com.solarStruggle.domain.{Chassis => ChassisBase}

class Shuttle1Stats
extends Chassis {
	def maxEngines = 1
	def researchCost = 0
	def maxPods = 1
	def energy = -20
	def description = ""
	def maxWeapons = 0
	def cost = 10000
	def name = "Shuttle I"
	def mass = 6
}

object Shuttle1 extends ShardFactory {
	override def apply() = new Shuttle1Stats()

	override lazy val singleton = new Shuttle1Stats()
}

class Shuttle2Stats
extends Chassis {
	def maxEngines = 2
	def researchCost = 5
	def maxPods = 2
	def energy = -30
	def description = ""
	def maxWeapons = 0
	def cost = 15000
	def name = "Shuttle II"
	def mass = 6
}

object Shuttle2 extends ShardFactory {
	override def apply() = new Shuttle2Stats()

	override lazy val singleton = new Shuttle2Stats()
}

class Shuttle3Stats
extends Chassis {
	def maxEngines = 2
	def researchCost = 5
	def maxPods = 3
	def energy = -40
	def description = ""
	def maxWeapons = 1
	def cost = 20000
	def name = "Shuttle III"
	def mass = 6
}

object Shuttle3 extends ShardFactory {
	override def apply() = new Shuttle3Stats()

	override lazy val singleton = new Shuttle3Stats()
}

class Cruiser1Stats
extends Chassis {
	def maxEngines = 2
	def researchCost = 10
	def maxPods = 0
	def energy = -100
	def description = ""
	def maxWeapons = 2
	def cost = 30000
	def name = "Cruiser I"
	def mass = 10
}

object Cruiser1 extends ShardFactory {
	override def apply() = new Cruiser1Stats()

	override lazy val singleton = new Cruiser1Stats()
}

class Cruiser2Stats
extends Chassis {
	def maxEngines = 3
	def researchCost = 10
	def maxPods = 1
	def energy = -120
	def description = ""
	def maxWeapons = 3
	def cost = 40000
	def name = "Cruiser II"
	def mass = 9
}

object Cruiser2 extends ShardFactory {
	override def apply() = new Cruiser2Stats()

	override lazy val singleton = new Cruiser2Stats()
}

class Cruiser3Stats
extends Chassis {
	def maxEngines = 3
	def researchCost = 10
	def maxPods = 1
	def energy = -140
	def description = ""
	def maxWeapons = 4
	def cost = 50000
	def name = "Cruiser III"
	def mass = 8
}

object Cruiser3 extends ShardFactory {
	override def apply() = new Cruiser3Stats()

	override lazy val singleton = new Cruiser3Stats()
}

class Sphere1Stats
extends Chassis {
	def maxEngines = 5
	def researchCost = 30
	def maxPods = 10
	def energy = -200
	def description = ""
	def maxWeapons = 10
	def cost = 500000
	def name = "Sphere I"
	def mass = 3
}

object Sphere1 extends ShardFactory {
	override def apply() = new Sphere1Stats()

	override lazy val singleton = new Sphere1Stats()
}

class Sphere2Stats
extends Chassis {
	def maxEngines = 10
	def researchCost = 20
	def maxPods = 10
	def energy = -250
	def description = ""
	def maxWeapons = 20
	def cost = 700000
	def name = "Sphere II"
	def mass = 4
}

object Sphere2 extends ShardFactory {
	override def apply() = new Sphere2Stats()

	override lazy val singleton = new Sphere2Stats()
}

class Sphere3Stats
extends Chassis {
	def maxEngines = 10
	def researchCost = 20
	def maxPods = 10
	def energy = -300
	def description = ""
	def maxWeapons = 30
	def cost = 1000000
	def name = "Sphere III"
	def mass = 5
}

object Sphere3 extends ShardFactory {
	override def apply() = new Sphere3Stats()

	override lazy val singleton = new Sphere3Stats()
}

class Wheel1Stats
extends Chassis {
	def maxEngines = 0
	def researchCost = 15
	def maxPods = 5
	def energy = -200
	def description = ""
	def maxWeapons = 4
	def cost = 300000
	def name = "Rotating Wheel I"
	def mass = 0
}

object Wheel1 extends ShardFactory {
	override def apply() = new Wheel1Stats()

	override lazy val singleton = new Wheel1Stats()
}

class Wheel2Stats
extends Chassis {
	def maxEngines = 0
	def researchCost = 10
	def maxPods = 7
	def energy = -250
	def description = ""
	def maxWeapons = 10
	def cost = 350000
	def name = "Rotating Wheel II"
	def mass = 0
}

object Wheel2 extends ShardFactory {
	override def apply() = new Wheel2Stats()

	override lazy val singleton = new Wheel2Stats()
}

class Wheel3Stats
extends Chassis {
	def maxEngines = 0
	def researchCost = 10
	def maxPods = 10
	def energy = -300
	def description = ""
	def maxWeapons = 15
	def cost = 400000
	def name = "Rotating Wheel III"
	def mass = 0
}

object Wheel3 extends ShardFactory {
	override def apply() = new Wheel3Stats()

	override lazy val singleton = new Wheel3Stats()
}

class Garden1Stats
extends Chassis {
	def maxEngines = 1
	def researchCost = 10
	def maxPods = 2
	def energy = -50
	def description = ""
	def maxWeapons = 1
	def cost = 20000
	def name = "Garden I"
	def mass = 5
}

object Garden1 extends ShardFactory {
	override def apply() = new Garden1Stats()

	override lazy val singleton = new Garden1Stats()
}

class Garden2Stats
extends Chassis {
	def maxEngines = 2
	def researchCost = 5
	def maxPods = 3
	def energy = -70
	def description = ""
	def maxWeapons = 2
	def cost = 30000
	def name = "Garden II"
	def mass = 5
}

object Garden2 extends ShardFactory {
	override def apply() = new Garden2Stats()

	override lazy val singleton = new Garden2Stats()
}

class Garden3Stats
extends Chassis {
	def maxEngines = 3
	def researchCost = 5
	def maxPods = 5
	def energy = -80
	def description = ""
	def maxWeapons = 2
	def cost = 50000
	def name = "Garden III"
	def mass = 6
}

object Garden3 extends ShardFactory {
	override def apply() = new Garden3Stats()

	override lazy val singleton = new Garden3Stats()
}

class Satellite1Stats
extends Chassis {
	def maxEngines = 1
	def researchCost = 5
	def maxPods = 0
	def energy = -10
	def description = ""
	def maxWeapons = 1
	def cost = 5000
	def name = "Satellite I"
	def mass = 1
}

object Satellite1 extends ShardFactory {
	override def apply() = new Satellite1Stats()

	override lazy val singleton = new Satellite1Stats()
}

class Satellite2Stats
extends Chassis {
	def maxEngines = 1
	def researchCost = 5
	def maxPods = 0
	def energy = -20
	def description = ""
	def maxWeapons = 2
	def cost = 7500
	def name = "Satellite II"
	def mass = 1
}

object Satellite2 extends ShardFactory {
	override def apply() = new Satellite2Stats()

	override lazy val singleton = new Satellite2Stats()
}

class Satellite3Stats
extends Chassis {
	def maxEngines = 1
	def researchCost = 5
	def maxPods = 0
	def energy = -30
	def description = ""
	def maxWeapons = 3
	def cost = 10000
	def name = "Satellite III"
	def mass = 1
}

object Satellite3 extends ShardFactory {
	override def apply() = new Satellite3Stats()

	override lazy val singleton = new Satellite3Stats()
}

